package com.BD;	

import java.util.ArrayList;

import com.Reporte_Consultas.Registro_Consultas;
import com.Reporte_Consultas.Registro_Ventas;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class BD_RC extends SQLiteOpenHelper {
	
	private static final int DATABASE_VERSION = 1;	 
    // Database Name
    private static final String DATABASE_NAME = "DB_Con_v1"; 
    //NOMBRE DE LAS TABLAS
 
    private static final String TABLA_CONSULTAS = "Tabla_Consultas";
    private static final String TABLA_VENTAS = "Tabla_Ventas";

    
    private static final String KEY_anho = "anho";
    private static final String KEY_trimestre = "trimestre";
    private static final String KEY_mes = "mes";
    private static final String KEY_nomMes = "nomMes";    
    private static final String KEY_cantidad = "cantidad";

    
    
	public BD_RC(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

	@Override
	public void onCreate(SQLiteDatabase db) {
		
        String CREATE_TABLA_RE2 = "CREATE TABLE " + TABLA_VENTAS + "("
    			+ KEY_anho + " INTEGER,"
    			+ KEY_trimestre  + " INTEGER,"
    			+ KEY_mes  + " TEXT,"
    			+ KEY_nomMes  + " INTEGER,"
    			+ KEY_cantidad + " REAL"
    			+ ")";
        db.execSQL(CREATE_TABLA_RE2);
        
        String CREATE_TABLA_RE1 = "CREATE TABLE " + TABLA_CONSULTAS + "("
    			+ KEY_anho + " INTEGER,"
    			+ KEY_trimestre  + " INTEGER,"
    			+ KEY_mes  + " TEXT,"
    			+ KEY_nomMes  + " INTEGER,"
    			+ KEY_cantidad + " REAL"
    			+ ")";
        db.execSQL(CREATE_TABLA_RE1);
    }
	
	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

		
	}
	
	public void addRegistroConsultas(Registro_Consultas regConsulta){
		SQLiteDatabase db = this.getWritableDatabase();		 
        ContentValues values = new ContentValues();
        values.put(KEY_anho , regConsulta.getAnho()); 
        values.put(KEY_trimestre  , regConsulta.getTrimestre()); 
        values.put(KEY_mes  , regConsulta.getMes());
        values.put(KEY_nomMes , regConsulta.getNomMes());
        values.put(KEY_cantidad , regConsulta.getCantidad());
        
        // Inserting Row
        db.insert(TABLA_CONSULTAS, null, values);
        db.close(); // Closing database connection
    }

	
	public void addRegistroVentas(Registro_Ventas regVentas){
		SQLiteDatabase db = this.getWritableDatabase();		 
        ContentValues values = new ContentValues();
        values.put(KEY_anho , regVentas.getAnho()); 
        values.put(KEY_trimestre  , regVentas.getTrimestre()); 
        values.put(KEY_mes  , regVentas.getMes());
        values.put(KEY_nomMes , regVentas.getNomMes());
        values.put(KEY_cantidad , regVentas.getCantidad());
        
        // Inserting Row
        db.insert(TABLA_VENTAS, null, values);
        db.close(); // Closing database connection
    }
	
	
	public void borraTablaVentas() {
		SQLiteDatabase db = this.getWritableDatabase();
		db.delete(TABLA_CONSULTAS, null, null);
		db.delete(TABLA_VENTAS, null, null);
		
	}

	
	
	public ArrayList<Registro_Consultas> getConsultas (String periodo){

		ArrayList<Registro_Consultas> listaConsultas = new ArrayList<Registro_Consultas>();
		
		SQLiteDatabase db = this.getReadableDatabase();
		    
		String query="SELECT anho, trimestre, mes, nomMes, cantidad " +
					 " FROM " + TABLA_CONSULTAS + " ";
		    		    
		//Periodo
		if (periodo.equals("Anho"))
			query+=" GROUP BY anho ";
		    		    
		if (periodo.equals("Trimestre"))
			query+=" GROUP BY anho, trimestre ";
				
		if (periodo.equals("Mes"))
			query+=" GROUP BY anho, mes ";
		

			Cursor cursor = db.rawQuery(query, null);
		
		if (cursor!=null){
		
			if (cursor.moveToFirst()) {
				do {
					Registro_Consultas reg = new Registro_Consultas();
	            
					reg.setAnho(cursor.getInt(0));
					reg.setTrimestre(cursor.getInt(1));
					reg.setMes(cursor.getInt(2));
					reg.setNomMes(cursor.getString(3));
					reg.setCantidad(cursor.getInt(4));
					
				
					// 	Adding contact to list
					listaConsultas.add(reg);
				} while (cursor.moveToNext());
			}else
				return null;
		}else
			return null;
		
		cursor.close();
		db.close();
		return listaConsultas;
	}
	
	
	
	public ArrayList<Registro_Ventas> getVentas (String periodo){

		ArrayList<Registro_Ventas> listaVentas = new ArrayList<Registro_Ventas>();
		
		SQLiteDatabase db = this.getReadableDatabase();
	    
		String query="SELECT anho, trimestre, mes, nomMes, cantidad " +
				 " FROM " + TABLA_VENTAS + " ";
	    		    
		//Periodo
		if (periodo.equals("Anho"))
			query+=" GROUP BY anho ";
	    		    
		if (periodo.equals("Trimestre"))
			query+=" GROUP BY anho, trimestre ";
			
		if (periodo.equals("Mes"))
			query+=" GROUP BY anho, mes ";
				
		Cursor cursor = db.rawQuery(query, null);
		
		if (cursor!=null){
		
			if (cursor.moveToFirst()) {
				do {
					Registro_Ventas reg = new Registro_Ventas();
	            
					reg.setAnho(cursor.getInt(0));
					reg.setTrimestre(cursor.getInt(1));
					reg.setMes(cursor.getInt(2));
					reg.setNomMes(cursor.getString(3));
					reg.setCantidad(cursor.getInt(4));
					
					// 	Adding contact to list
					listaVentas.add(reg);
				} while (cursor.moveToNext());
			}else
				return null;
		}else
			return null;
				
		cursor.close();
		db.close();
		return listaVentas;
	}

	
	
		
}